Stylus assist

ABSTRACT

Methods for providing information related to selected content and a suggested completion of one or more written words are provided. In one aspect, a method includes invoking an assistant tool, displaying an assistant window on a device display, receiving an indication of a selection of content on the display, generating a query for information associated with the selected content, receiving ranked results from the query, and displaying the received results in the assistant window. In one aspect, a snapshot of the selected content is captured and displayed with the results. In one aspect, a method includes receiving an indication of one or more words being written on the display and providing at least one suggested completion of a word or sentence being written. Systems and machine-readable media are also provided.

TECHNICAL FIELD

The present disclosure generally relates to providing content relatedinformation, and more specifically relates to an assistant tool forproviding and displaying information related to selected content.

BACKGROUND

When a user of a device selects or specifies on-screen content with astylus or other input device, it may be desired to receive actionsand/or information related to the selected content. To obtain furtherinformation, the user is commonly required to manually identify orsearch for such additional information related to the selected content.

The description provided in the background section should not be assumedto be prior art merely because it is mentioned in or associated with thebackground section. The background section may include information thatdescribes one or more aspects of the subject technology.

SUMMARY

According to certain aspects of the present disclosure, acomputer-implemented method for providing information related toselected content is provided. The method includes invoking an assistanttool on an electronic device and providing, on a display of theelectronic device, an assistant window. The method also includesreceiving, from an input source of the electronic device, an initialstroke on the display of the electronic device and morphing, by theassistant tool, the initial stroke of the input source on the electronicdevice into a uniform stroke, wherein the uniform stroke is anindication of a selection of content. The method further includesgenerating, by the assistant tool, a query for information associatedwith a portion of the selected content. The method also includesreceiving, by the electronic device, at least one highest ranked resultfrom the query, wherein a result rank indicates the relevance of theresult to the portion of the selected content and providing, by theassistant tool, the received results for display in the assistantwindow.

According to certain aspects of the present disclosure, a system forproviding information related to selected content is provided. Thesystem includes a memory and a processor configured to executeinstructions. The executed instructions cause the processor to invoke anassistant tool on a client device; provide an assistant window on adisplay of the client device; receive, from an input source of theclient device, an indication of a selection of content on the display;generate, by the assistant tool, a query for information associated witha portion of the selected content; receive, by the client device, atleast one result from the query; identify, by the assistant tool, anarea of the selected content; capture, by the assistant tool, a snapshotof the identified area; and provide, by the assistant tool, the capturedsnapshot and the received at least one result for display in theassistant window.

According to certain aspects of the present disclosure, a non-transitorymachine-readable storage medium comprising machine-readable instructionsfor causing a processor to execute a method for providing informationrelated to selected content is provided. The method includes invoking anassistant tool on a mobile device, providing an assistant window on adisplay of the mobile device and receiving an initial stroke of theinput device on the display. The method further includes morphing theinitial stroke into a uniform stroke, wherein the uniform stroke is anindication of a selection of content. The method also includesgenerating, by the assistant tool, a query for information associatedwith the selected content and receiving, by the mobile device, rankedresults from the query, wherein a result rank is a confidence level ofrelevance to the selected content. The method further includesproviding, by the assistant tool, a snapshot of the selected content andthe received ranked results for display in the assistant window.

It is understood that other configurations of the subject technologywill become readily apparent to those skilled in the art from thefollowing detailed description, wherein various configurations of thesubject technology are shown and described by way of illustration. Aswill be realized, the subject technology is capable of other anddifferent configurations and its several details are capable ofmodification in various other respects, all without departing from thescope of the subject technology. Accordingly, the drawings and detaileddescription are to be regarded as illustrative in nature and not asrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide furtherunderstanding and are incorporated in and constitute a part of thisspecification, illustrate disclosed embodiments and together with thedescription serve to explain the principles of the disclosedembodiments. In the drawings:

FIG. 1 illustrates an example architecture for providing interactivecontent and information that are related to selected content, or asuggested completion of one or more written words.

FIG. 2 is a block diagram illustrating an example client and server fromthe architecture of FIG. 1 according to certain aspects of thedisclosure.

FIGS. 3A-3C are example illustrations associated with the disclosure ofFIG. 2.

FIGS. 4A-4C are example illustrations associated with the disclosure ofFIG. 2.

FIGS. 5A-5D are example illustrations associated with the disclosure ofFIG. 2.

FIG. 6 illustrates an example process for providing interactive contentand information that are related to selected content using the exampleclient of FIG. 2.

FIG. 7 is a block diagram illustrating an example computer system withwhich the clients and server of FIG. 2 can be implemented.

In one or more implementations, not all of the depicted components ineach figure may be required, and one or more implementations may includeadditional components not shown in a figure. Variations in thearrangement and type of the components may be made without departingfrom the scope of the subject disclosure. Additional components,different components, or fewer components may be utilized within thescope of the subject disclosure.

DETAILED DESCRIPTION

The detailed description set forth below is intended as a description ofvarious implementations and is not intended to represent the onlyimplementations in which the subject technology may be practiced. Asthose skilled in the art would realize, the described implementationsmay be modified in various different ways, all without departing fromthe scope of the present disclosure. Accordingly, the drawings anddescription are to be regarded as illustrative in nature and notrestrictive.

General Overview

The disclosed system provides a stylus assistant tool that is invoked toprovide actions and information related to selected content or asuggested completion of one or more written words.

Specifically, the user selects or triggers a stylus assistant tool on aclient device. The trigger to select the stylus assistant tool may be ahardware trigger or a software trigger. For example, pressing a physicalbutton or switch on a stylus may invoke the stylus assistant tool. Asanother example, selecting an assistant mode from a stylus menu on theclient device (e.g., a drop down menu) may invoke the stylus assistanttool. Once the stylus assistant tool is invoked, an assistant window maybe opened up on the display of the client device. The assistant windowmay provide a prompt to select a content item displayed on the clientdevice.

The content item may be selected by highlighting on-screen content(e.g., single, unbroken stroke not forming a particular shape),underlining on-screen content, drawing a more or less closed shape or afully closed shape (e.g., circle, rectangle, square, triangle,polyhedron) around on-screen content, or writing one or more words. Theselection of the content or the writing of the words may be made by aninput source, such as a stylus or a finger. The stylus assistant toolthen obtains and displays additional information related to the selectedcontent or provides suggested completions of incomplete words orsentences. For example, the stylus assistant tool may provide results ofa web search for a selected term, a definition of the term, and imagesassociated with the term. The results may be displayed along with asnapshot of the selected content. Here, a circle may be drawn around asection of displayed content, and the stylus assistant tool may identifyor determine a rectangular area of content within the drawn circle, forexample. A screenshot or snapshot of the content within the identifiedrectangular area may then be captured and displayed with the results.

The stylus assistant tool may have several properties, such as tipproperties, ink properties and shape morphing properties. For the tipproperties, the stylus ink used to highlight or circle content takes theshape of a highlighter, so that the virtual tip of the stylus is slantedat a 45 degree angle. Though the output on the display screen may remainthe same for any position the user tilts the stylus, the stylus may sendrotation and left/right incline input to influence the line that isdrawn, thus catering better to the user's right or left handedness.

Regarding the ink properties, the tracing is made to look like a naturaldrawing with a highlighter by computing the rotation and incline of thestylus to deliver a natural stroke based on a default width and height(e.g., 4×14). For a highlighting stroke, the stylus assistant toolanalyzes anything that is directly underneath the ink of thehighlighting. Similarly, for a closed shape drawn around content, thestylus assistant tool analyzes the content that is inside the closedshape. Further, for an underlining stroke, the stylus assistant toolanalyzes anything that is displayed above the ink line of the underlinedcontent.

The shape morphing properties may be used as validation and/orcommunication of success in selecting content. For example, the stylusassistant tool may be successfully triggered by receiving valid input atan initial state when the user draws a circle around a name. The initialstroke may then be morphed into a unified width (e.g., 4 dp) having auniform closed shape in an end state. Similarly, a valid highlightingstroke may trigger the stylus assistant tool in an initial state, andthe stroke may be morphed (e.g., straightened) with a unified height(e.g., 14 dp) in an end state.

The disclosed system addresses a technical problem tied to computertechnology and arising in the realm of computer networks, namely thetechnical problem of, in response to detection of a selected contentitem on a device, identifying additional actions and information relatedto the selected content item, for example, over a network in order toprovide and display further actions/information related to the selectedcontent item. The disclosed system solves this technical problem byanalyzing one or more databases of possible information to identifyrelevant information that is most suitable for displaying with regardsto the selected content item, and obtaining such information over anetwork if it is not available on the device. The disclosed systemprovides a solution necessarily rooted in computer technology as itrelates to the analysis of a selected content item to identify, andobtain, suitable relevant information to display with the content itemor in response to the selection of the content item. For example, thedisclosed system facilitates allowing content items such as URLs fromthe World Wide Web to be displayed when the content item is selected,though the content item itself may not be interactive. As a result, aricher user experience may be provided with regard to static or activecontent items.

Although certain examples provided herein may describe a user'sinformation (e.g., a selection of a content item to be accessed) beingstored in memory, each user may grant explicit permission for such userinformation to be stored. The explicit permission may be granted usingprivacy controls integrated into the disclosed system. If requested userinformation includes demographic information, the demographicinformation is aggregated on a group basis and not by an individualuser. Each user may be provided notice that such user information willbe stored with such explicit consent, and each user may at any time endhaving the user information stored, and may delete the stored userinformation. The stored user information may be encrypted to protectuser security.

The user can delete the user information from memory. Additionally, theuser can adjust appropriate privacy settings to selectively limit thetypes of user information stored in memory, or select the memory inwhich the user information is stored (e.g., locally on the user's deviceas opposed to remotely a server). In many examples, the user informationdoes not include and/or share the specific identification of the user(e.g., the user's name) unless otherwise specifically provided ordirected by the user. Certain data may be treated in one or more waysbefore it is stored or used, so that personally identifiable informationis removed. For example, a user's identity may be treated so that nopersonal identifiable information can be determined for the user, or auser's geographic location may be generalized where location informationis obtained (such as to a city, ZIP code, or state level), so that aparticular location of a user cannot be determined.

Example System Architecture

FIG. 1 illustrates an example architecture 100 for providing actions andinformation related to selected content or a suggested completion of oneor more written words. The architecture 100 includes servers 130 andclients 110 connected over a network 150.

The clients 110 can be, for example, desktop computers, mobilecomputers, tablet computers (e.g., including e-book readers), mobiledevices (e.g., a smartphone or personal digital assistant), set topboxes (e.g., for a television), video game consoles, or any otherdevices having appropriate processor, memory, and communicationscapabilities for running an assistant tool that provides actions orinformation related to selected content or written words, for display.Upon the selection of the assistant tool by either a hardware trigger(e.g., stylus button) or a software trigger (e.g., menu selection),selection of a content item or writing of one or more words on thedisplay of the client 110 are provided by an input source (e.g., stylus,finger). The selected assistant tool queries resources on the client 110or over the network 150 from one of the servers 130 to obtain anddisplay additional content, information related to the selected contentor suggested completions for the words being written (e.g., incompletewords or sentences).

One or more of the many servers 130 are configured to host variousdatabases that include actions, documents, graphics, files and any othersources of content items. The databases may include, for each source inthe database, information on the relevance or weight of the source withregards to the selected content item on the client 110. The applicationdatabase on the servers 130 can be queried by clients 110 over thenetwork 150. For purposes of load balancing, multiple servers 130 canhost the application database either individually or in portions.

The servers 130 can be any device having an appropriate processor,memory, and communications capability for hosting content andinformation. The network 150 can include, for example, any one or moreof a personal area network (PAN), a local area network (LAN), a campusarea network (CAN), a metropolitan area network (MAN), a wide areanetwork (WAN), a broadband network (BBN), the Internet, and the like.Further, the network 150 can include, but is not limited to, any one ormore of the following network topologies, including a bus network, astar network, a ring network, a mesh network, a star-bus network, treeor hierarchical network, and the like.

Example System for Invoking an Assistant Tool to Provide InteractiveContent, Information and Suggested Completion of Written Words

FIG. 2 is a block diagram 200 illustrating an example server 130 andclient 110 in the architecture 100 of FIG. 1 according to certainaspects of the disclosure.

The client 110 and the server 130 are connected over the network 150 viarespective communications modules 218 and 238. The communicationsmodules 218 and 238 are configured to interface with the network 150 tosend and receive information, such as data, requests, responses, andcommands to other devices on the network. The communications modules 218and 238 can be, for example, modems or Ethernet cards. The client 110also includes an input device 216, such as a stylus, touchscreen,keyboard, or mouse, and an output device 214, such as a display. Theserver 130 includes a processor 236, the communications module 238, anda memory 232. The memory 232 includes a content item database 234.

The client 110 further includes a processor 212, the communicationsmodule 218, and a memory 220. The memory 220 includes an assistant toolapplication 222 and a content item database 224. The content itemdatabase 224 may include, for example, a URL, a web page, a documentsuch as a text document, a spreadsheet, a media file (e.g., audio,image, video, or any combination thereof), or any other data objectconfigured to be interacted with by a user of the client 110. Thecontent item database 224 may also include passive content items thatare not inherently interactive, such as text, photographs, graphicimages, etc. In certain aspects, the content items may be more genericintents such as actions to be performed including, for example, taking aphotograph, opening an interactive map or listening to an audio file.The assistant tool application 222 may be configured to provideinteraction with a content item from the content item database 224, suchas determining a selection of the content item, identifying an area ofthe selected content and capturing a snapshot of the identified area,querying the content item database 224 on the client and content itemdatabases 234 on the servers 130 for information relevant to theselected content item, determining the most suitable relevantinformation, and providing the most suitable relevant information withthe captured snapshot of the identified area of selected content fordisplay on the client 110, either in conjunction with or in place of theselected content item.

The processors 212, 236 of the client 110, server 130 are configured toexecute instructions, such as instructions physically coded into theprocessor 212, 236 instructions received from software in memory 220,232 or a combination of both. For example, the processor 212 of theclient 110 may execute instructions to select a content item from thecontent item database 224, to identify an area within the selectedcontent item on the display 214 of the client 110, to capture a snapshotof the identified area, to generate a query to either or both client 110and server 130 content item databases 224, 234 for information relevantto the selected content item, to determine a weight/rank/suitabilityfactor of identified relevant information, and to provide the mostrelevant information for display on the client 110. The processor 236 ofthe server 130 may execute instructions to analyze a query from theclient 110, to search content item databases 234 for informationrelevant to the selected content item, to obtain or determine aconfidence/weight/suitability factor or level for resulting relevantinformation, to rank the resulting relevant information, and to providea number of the ranked relevant information to the client 110. Theclient 110 is configured to access the application database 234 on theserver 130 over the network 150 using the respective communicationsmodules 218 and 238 of the client 110 and server 130.

Specifically, the processor 212 of the client 110 executes instructions(e.g., from the assistant tool application 222) causing the processor212 to receive user input (using the input device 216) in the assistanttool application 222 to determine selection of a content item within thecontent item database 224. For example, the user can select the contentitem using a stylus or a finger by highlighting on-screen content (e.g.,single, unbroken stroke not forming a particular shape), underliningon-screen content, or drawing a more or less closed shape (e.g., circle,rectangle, square) around on-screen content that is displayed on theoutput device 214 (e.g., a touch screen display). As another example,the user can write one or more words on the display using a stylus or afinger, and the assistant tool application 222 may identify the writtenwords as being selected.

The processor 212 of the client 110 also executes instructions (e.g.,from the assistant tool application 222) causing the processor 212 toanalyze the selected content item, to identify and capture a snapshot ofan area of the selected content item, to generate a query for additionalcontent and information related to the selected content, and to displaythe captured snapshot and relevant results of the search/query. Forexample, as shown in FIG. 3A, a user may select the “Assistant mode” ina Stylus tools window, which invokes the stylus assistant tool. As shownin FIG. 3B, invoking the stylus assistant tool opens an assistant windowthat provides a prompt (e.g., “Draw with your stylus to select”). Theuser may then draw a circle around a section of the displayed textwindow with a stylus or a finger to select the content within the circle(e.g., a portion of the text question “Hey, what's your flight number?,”the text response “It's UA 1463,” the smiley emoji and the time stamp“12:28 pm,” as shown in FIG. 3B.

The selection of the content triggers the assistant tool application 222to identify an area of the circled content and to take a snapshot ofthat identified area, such as the rectangular area with rounded cornersshown in the assistant window of FIG. 3C. The assistant tool application222 also initiates a query to search for information relevant to thecircled text message “It's UA 1463,” such as flight details, travelbooking applications, information related to the travel locations, etc.The information search may be conducted by either or both the client 110and one or more of the servers 130. For example, a query with thecaptured snapshot may be sent to a server 130, which may run imagerecognition and/or image search processes on the captured snapshot. Asanother example, the server 130 may run text recognition and text searchprocesses on any of the selected circled text (e.g., “It's UA 1463”). Inyet another example, the server 130 may analyze metadata (e.g., tags,keywords) associated with the selected content and run searches on theresults of the metadata analysis. The server 130 may then obtain ordetermine confidence levels for each of the results of any or allsearches and analysis, rank the results by confidence level and send anumber of the ranked results (e.g., three top ranked results) back tothe client 110. Analysis and search processes may also be done by theclient 110 on information locally stored on the client 110.

As shown in FIG. 3C, results of the search are then displayed in theassistant window in conjunction with (e.g., overlaying a portion of) thepreviously displayed content. Here, the assistant window displays thecaptured snapshot, an assistant tool message “Here's what I found,” andresults of the query, including detailed information about UA flight1463(e.g., destination city, date, arrival time, arrival terminal andarrival gate), as well as additional options for further use of theinformation (e.g., a “Search results” button and a “Flights from Austin”button). Thus, the client 110 obtains and displays associatedinformation and interactive features for further search by selection ofdisplayed content on the client 110 when in the stylus assistant toolmode, without having to leave the displayed content on the client 110,type in search criteria or click through additional links/searchscreens.

The assistant tool application 222 may also provide/display additionalinformation based on drawing a substantially enclosing shape (e.g.,circling) around a picture of a thing/place or a position on a displayedmap. For example, the input device 216 (e.g., stylus, finger) may beused to circle an image of the clear inverted pyramid in front of theLouvre museum in Paris, thus triggering the assistant tool application222 to obtain and provide various information on the Louvre, such asmuseum visiting hours, the location of the Louvre on a map, traveldirections, or a listing of featured artists or events. In yet anotherexample, a user may begin writing a message with the stylus, triggeringthe assistant tool application 222 to obtain and display suggestedcompletions of words or sentences for the message being written.

The processor 236 of the server 130 may further execute instructionsbased on the query generated by the assistant tool application 222, theinstructions causing the processor 236 to compare search/query resultsand to determine the most suitable results relative to the selectedcontent. For example, the search results related to the text message“It's UA 1463” selected in FIG. 3B may also yield a map of Austin, aschedule of events happening in Austin on August 24, and the weatherforecast for Austin on August 24. A ranking application on the server130 may then analyze all of the search results and determine a number oftop results, such as a predetermined number (e.g., top three results) oronly results exceeding a threshold of relevance. For example, thedetailed information about UA flight 1463 may be determined to be themost relevant (e.g., highest ranked) information associated with theselected content in FIG. 3A. The server 130 provides this most relevantinformation to the client 110, which is then displayed as shown in FIG.3C. However, other information (e.g., lower ranked information) relatedto the search results is not sent by the server 130 to the client 110,and thus not displayed on the client 110.

As another example, search results may be provided by the server 130 tothe assistant tool application 222 on the client 110, and the assistanttool application 222 may rank or otherwise sort the received searchresults by relevance. Here, the assistant tool application 222 may thenprovide/display information related to a number of top results (e.g.,top three ranked results, ranked results exceeding a threshold ofrelevance). The assistant tool application 222 may also receive rankedresults from the server 130, analyze and re-rank the received results,and display the most relevant of the re-ranked results. The assistanttool application 222 may also combine the results received from theserver 130 and results generated by the client 110 for analyzing andre-ranking.

The assistant tool application 222 may have several properties, such astip properties, ink properties and shape morphing properties. Forexample, for tip properties, stylus ink used to highlight, underline orenclose content may take the shape of a highlighter, so that the virtualtip of a stylus is slanted at a 45 degree angle, as shown in FIGS. 4Aand 4B. Though the output on the display screen may remain the same forany position the user tilts the stylus, the assistant tool application222 may send rotation and left/right incline input to influence the linethat is drawn, thus catering better to the user's right or lefthandedness.

For ink properties of the assistant tool application 222, as shown inFIG. 4C, a tracing on the display may be made to look like a naturaldrawing with a highlighter by computing the rotation and incline of thestylus to deliver a natural stroke based on a default width and height(e.g., 4×14). For a highlighting stroke, the assistant tool application222 may analyze any content that is directly underneath the ink of thehighlighting (e.g., the ink of the highlighting overlays the contentperpendicular to the display). Similarly, for an underlining stroke, theassistant tool application 222 may analyze any content that is directlyabove the ink of the underlining (e.g., the underlining and the contentare on the same plane of the display). As another example, for a closedshape drawn around content, the assistant tool application 222 mayanalyze the content that is inside the closed shape.

The shape morphing properties of the assistant tool application 222 maybe used as validation and/or communication of success in selectingcontent. For example, as shown in FIGS. 5A and 5B, the assistant toolapplication 222 is successfully triggered by receiving valid input at aninitial state when the user draws a substantially but not fully completecircle around a name. The assistant tool application 222 may also besuccessfully triggered by the user drawing a completely enclosed shape(e.g., circle, square, rectangle) around the name. The initial strokemay then be morphed into a uniform stroke having a unified width (e.g.,4 dp) and a uniform closed shape in an end state. Similarly, as shown inFIGS. 5C and 5D, a valid highlighting stroke triggers the assistant toolapplication 222 in an initial state, and the stroke is morphed (e.g.,straightened) into a uniform stroke with a unified height (e.g., 14 dp)in an end state. The morphed uniform stroke may provide an indication ofa selection of content (e.g., the content highlighted or enclosed by themorphed uniform stroke).

The techniques described herein may be implemented as method(s) that areperformed by physical computing device(s); as one or more non-transitorycomputer-readable storage media storing instructions which, whenexecuted by computing device(s), cause performance of the method(s); or,as physical computing device(s) that are specially configured with acombination of hardware and software that causes performance of themethod(s).

FIG. 6 illustrates an example process 300 for selecting content andproviding actions and/or information related to the selected contentusing the example client 110 of FIG. 2. While FIG. 6 is described withreference to FIG. 2, it should be noted that the process steps of FIG. 6may be performed by other systems.

The process 300 begins in step 301 when an assistant tool is selected orinvoked on a client device. The assistant tool is selected by a hardwaretrigger such as a stylus button or by a software trigger such as a menuselection. An input gesture from a stylus or a finger selecting contenton the display of the client device is received by the assistant tool instep 302. Here, the input gesture (e.g., initial stroke on the display)may be morphed into a uniform stroke (e.g., final end stroke) on thedisplay to validate and/or communicate successful selection of thecontent. Next, in step 303, the assistant tool identifies or determinesan area of content within the input gesture selection and captures asnapshot of the identified area. In step 304, the selected content isanalyzed to determine search criteria, and the assistant tool in step305 generates a query for information related to the selected contentbased on the search criteria. The query may be performed on one or moreservers and/or the client device. In step 306 the results of the queryare analyzed and ranked to determine the most relevant query results.The ranking may also be performed on one or more servers and/or theclient device. The assistant tool provides the captured snapshot and themost relevant query results for display on the client device in step307.

An example will now be described using the example process 300 of FIG.6, a client 110 that is a smartphone, an output device 214 that is aflat panel display, an input device 216 that is a stylus/touch screeninterface, an assistant tool application 222 on the smartphone, acontent item database 224 that stores content that can be displayed onthe smartphone, and a communications module 218 that provides forcommunication between the smartphone client 110 and a network 150 ofservers 130.

The process 300 begins in step 301 when a user invokes the assistanttool application 222 by pressing a button on the stylus 216 or selectingan assistant tool menu option on the display 214, which opens anassistant window on the display 214 that prompts the user to draw on thedisplay 214 with the stylus 216 to select content. The user then circlesthe region around the text message “It's UA 1463” displayed on the flatpanel display 214 of the client 110 using the stylus/touch screeninterface 216, in step 302, where the user's input gesture is receivedby the assistant tool application 222. Next, in step 303, the assistanttool application 222 identifies a rectangular area of content within thecircled region and captures a snapshot of the identified area (see FIG.3C). The assistant tool application 222 analyzes the content in thecircled region to determine that the portion of the text message “UA1463” is a search criteria, in step 304. The assistant tool application222, in step 305, generates a query for information related to “UA1463.” Here, the query may be performed on content item database 224 onthe smartphone 110 and/or the content item databases 234 of servers 130through communications modules 218, 238. In step 306, a rankingapplication on a server 130 and/or the assistant tool application 222 onthe client 110 determine that the most relevant query results are theflight details of UA 1463, a link to search results and a link toflights from Austin. The process 300 ends with step 307, in which theassistant tool application 222 provides a response window with 1) thecaptured snapshot from step 303, a text box stating “Here's what Ifound” and 3) the most relevant query results of the flight details forUA 1463 (e.g., destination city, date, arrival time, arrival terminaland arrival gate), as well as additional options for further use of theinformation (e.g., a “Search results” button and a “Flights from Austin”button) to display on the flat panel display 214 (see FIG. 3C).

A computer-implemented method for providing information related toselected content may include, receiving, from an input source of adevice, an indication of a selection of content on a display of thedevice, invoking an assistant tool on the device if the receivedindication meets or exceeds a trigger threshold, and providing, fordisplay on the device, at least one of interactive content andinformation that are related to the selected content. The input sourcemay be one of a stylus and a finger. A query for information related tothe selected content may be generated, wherein the provided interactivecontent or information is based on results of the query.

The indication from the input source may be based on highlighting thecontent for selection with stylus ink and analyzing, by the assistanttool, the content underneath the stylus ink to generate the query. Theindication from the input source may be based on at least substantiallyenclosing the content for selection with stylus ink and analyzing, bythe assistant tool, the content enclosed by the stylus ink to generatethe query. The indication from the input source may be based onunderlining the content for selection with stylus ink and analyzing, bythe assistant tool, the content underlined by the stylus ink to generatethe query. The indication from the input source may be based on writingone or more words on the device display and analyzing, by the assistanttool, the written words to generate the query, wherein the additionalcontent provided on the device display is suggested completions to thewritten words.

The assistant tool may morph an initial highlighting stroke of the inputsource with a unified height, and provide, on the device display, themorphed highlighting stroke having a uniform height and straightness.The assistant tool may morph an initial enclosing stroke of the inputsource with a unified width, and display, on the device, the morphedenclosing stroke having a uniform width and closed shape. The inputsource may be a stylus, wherein the virtual tip of the stylus maintainsa defined slanted angle regardless of the tilt position of the stylus.The stylus may be configured to provide rotation and left/right inclineinput that influences the drawing of stylus ink on the display to alignwith a user's left or right handedness.

A system for providing information related to selected content mayinclude a memory and a processor configured to execute instructions. Theexecuted instructions may cause the processor to receive, from an inputsource of a device, an indication of a selection of content on a displayof the device, and invoke an assistant tool on the device if thereceived indication meets or exceeds a trigger threshold. The executedinstructions may also cause the processor to generate a query forinformation related to the selected content and provide, for display onthe device, additional information related to the selected content. Theindication from the stylus may be based on one of highlighting thecontent for selection with stylus ink, at least substantially enclosingthe content for selection with stylus ink, underlining the content forselection with stylus ink, and writing one or more words on the devicedisplay. The assistant tool may morph an initial highlighting stroke ofthe input source with a unified height and provide, on the devicedisplay, the morphed highlighting stroke having a uniform height andstraightness. The assistant tool may morph an initial enclosing strokeof the input source with a unified width and display, on the device, themorphed enclosing stroke having a uniform width and closed shape.

A non-transitory machine-readable storage medium having machine-readableinstructions causes a processor to execute a method for providinginformation related to selected content. The method may includereceiving, from a stylus, an indication of a selection of content on adisplay of a device, determining the received indication meets orexceeds a trigger threshold, invoking an assistant tool on the device,obtaining additional information related to the selected content, andproviding, for display on the device, one or more of the obtainedadditional information. The method may also include selecting thecontent with a stylus, displaying the selection with uniformlyproportioned stylus ink, and analyzing, by the assistant tool, thecontent indicated by the displayed stylus ink.

Hardware Overview

FIG. 7 is a block diagram illustrating an example computer system 700with which the client 110 and server 130 of FIG. 2 can be implemented.In certain aspects, the computer system 700 may be implemented usinghardware or a combination of software and hardware, either in adedicated server, or integrated into another entity, or distributedacross multiple entities.

Computer system 700 (e.g., client 110 and server 130) includes a bus 708or other communication mechanism for communicating information, and aprocessor 702 (e.g., processor 212 and 236) coupled with bus 708 forprocessing information. According to one aspect, the computer system 700is implemented as one or more special-purpose computing devices. Thespecial-purpose computing device may be hard-wired to perform thedisclosed techniques, or may include digital electronic devices such asone or more application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the techniques, or may include one or more general purposehardware processors programmed to perform the techniques pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, or FPGAs with custom programming toaccomplish the techniques. The special-purpose computing devices may bedesktop computer systems, portable computer systems, handheld devices,networking devices or any other device that incorporates hard-wiredand/or program logic to implement the techniques. By way of example, thecomputer system 700 may be implemented with one or more processors 702.Processor 702 may be a general-purpose microprocessor, amicrocontroller, a Digital Signal Processor (DSP), an ASIC, a FPGA, aProgrammable Logic Device (PLD), a controller, a state machine, gatedlogic, discrete hardware components, or any other suitable entity thatcan perform calculations or other manipulations of information.

Computer system 700 can include, in addition to hardware, code thatcreates an execution environment for the computer program in question,e.g., code that constitutes processor firmware, a protocol stack, adatabase management system, an operating system, or a combination of oneor more of them stored in an included memory 704 (e.g., memory 220 and232), such as a Random Access Memory (RAM), a flash memory, a Read OnlyMemory (ROM), a Programmable Read-Only Memory (PROM), an Erasable PROM(EPROM), registers, a hard disk, a removable disk, a CD-ROM, a DVD, orany other suitable storage device, coupled to bus 708 for storinginformation and instructions to be executed by processor 702. Theprocessor 702 and the memory 704 can be supplemented by, or incorporatedin, special purpose logic circuitry. Expansion memory may also beprovided and connected to computer system 700 through input/outputmodule 710, which may include, for example, a SIMM (Single In LineMemory Module) card interface. Such expansion memory may provide extrastorage space for computer system 700, or may also store applications orother information for computer system 700. Specifically, expansionmemory may include instructions to carry out or supplement the processesdescribed above, and may include secure information also. Thus, forexample, expansion memory may be provided as a security module forcomputer system 700, and may be programmed with instructions that permitsecure use of computer system 700. In addition, secure applications maybe provided via the SIMM cards, along with additional information, suchas placing identifying information on the SIMM card in a non-hackablemanner.

The instructions may be stored in the memory 704 and implemented in oneor more computer program products, i.e., one or more modules of computerprogram instructions encoded on a computer readable medium for executionby, or to control the operation of, the computer system 700, andaccording to any method well known to those of skill in the art,including, but not limited to, computer languages such as data-orientedlanguages (e.g., SQL, dBase), system languages (e.g., C, Objective-C,C++, Assembly), architectural languages (e.g., Java, .NET), andapplication languages (e.g., PHP, Ruby, Perl, Python). Instructions mayalso be implemented in computer languages such as array languages,aspect-oriented languages, assembly languages, authoring languages,command line interface languages, compiled languages, concurrentlanguages, curly-bracket languages, dataflow languages, data-structuredlanguages, declarative languages, esoteric languages, extensionlanguages, fourth-generation languages, functional languages,interactive mode languages, interpreted languages, iterative languages,list-based languages, little languages, logic-based languages, machinelanguages, macro languages, metaprogramming languages, multiparadigmlanguages, numerical analysis, non-English-based languages,object-oriented class-based languages, object-oriented prototype-basedlanguages, off-side rule languages, procedural languages, reflectivelanguages, rule-based languages, scripting languages, stack-basedlanguages, synchronous languages, syntax handling languages, visuallanguages, wirth languages, embeddable languages, and xml-basedlanguages. Memory 704 may also be used for storing temporary variable orother intermediate information during execution of instructions to beexecuted by processor 702.

A computer program as discussed herein does not necessarily correspondto a file in a file system. A program can be stored in a portion of afile that holds other programs or data (e.g., one or more scripts storedin a markup language document), in a single file dedicated to theprogram in question, or in multiple coordinated files (e.g., files thatstore one or more modules, subprograms, or portions of code). A computerprogram can be deployed to be executed on one computer or on multiplecomputers that are located at one site or distributed across multiplesites and interconnected by a communication network. The processes andlogic flows described in this specification can be performed by one ormore programmable processors executing one or more computer programs toperform functions by operating on input data and generating output.

Computer system 700 further includes a data storage device 706 such as amagnetic disk or optical disk, coupled to bus 708 for storinginformation and instructions. Computer system 700 may be coupled viainput/output module 710 to various devices. The input/output module 710can be any input/output module. Example input/output modules 710 includedata ports such as USB ports. In addition, input/output module 510 maybe provided in communication with processor 702, so as to enable neararea communication of computer system 700 with other devices. Theinput/output module 710 may provide, for example, for wiredcommunication in some implementations, or for wireless communication inother implementations, and multiple interfaces may also be used. Theinput/output module 710 is configured to connect to a communicationsmodule 712. Example communications modules 712 (e.g., communicationsmodules 218 and 238) include networking interface cards, such asEthernet cards and modems.

The components of the system can be interconnected by any form or mediumof digital data communication, e.g., a communication network. Thecommunication network (e.g., network 150) can include, for example, anyone or more of a PAN, a LAN, a CAN, a MAN, a WAN, a BBN, the Internet,and the like. Further, the communication network can include, but is notlimited to, for example, any one or more of the following networktopologies, including a bus network, a star network, a ring network, amesh network, a star-bus network, tree or hierarchical network, or thelike.

For example, in certain aspects, communications module 712 can provide atwo-way data communication coupling to a network link that is connectedto a local network. Wireless links and wireless communication may alsobe implemented. Wireless communication may be provided under variousmodes or protocols, such as GSM (Global System for MobileCommunications), Short Message Service (SMS), Enhanced Messaging Service(EMS), or Multimedia Messaging Service (MMS) messaging, CDMA (CodeDivision Multiple Access), Time division multiple access (TDMA),Personal Digital Cellular (PDC), Wideband CDMA, General Packet RadioService (GPRS), or LTE (Long-Term Evolution), among others. Suchcommunication may occur, for example, through a radio-frequencytransceiver. In addition, short-range communication may occur, such asusing a BLUETOOTH, WI-FI, or other such transceiver.

In any such implementation, communications module 712 sends and receiveselectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information. The network linktypically provides data communication through one or more networks toother data devices. For example, the network link of the communicationsmodule 712 may provide a connection through local network to a hostcomputer or to data equipment operated by an Internet Service Provider(ISP). The ISP in turn provides data communication services through theworld wide packet data communication network now commonly referred to asthe Internet. The local network and Internet both use electrical,electromagnetic or optical signals that carry digital data streams. Thesignals through the various networks and the signals on the network linkand through communications module 712, which carry the digital data toand from computer system 700, are example forms of transmission media.

Computer system 700 can send messages and receive data, includingprogram code, through the network(s), the network link andcommunications module 712. In the Internet example, a server mighttransmit a requested code for an application program through Internet,the ISP, the local network and communications module 712. The receivedcode may be executed by processor 702 as it is received, and/or storedin data storage 706 for later execution.

In certain aspects, the input/output module 710 is configured to connectto a plurality of devices, such as an input device 714 (e.g., inputdevice 216) and/or an output device 716 (e.g., output device 214).Example input devices 714 include a stylus, a finger, a keyboard and apointing device, e.g., a mouse or a trackball, by which a user canprovide input to the computer system 700. Other kinds of input devices714 can be used to provide for interaction with a user as well, such asa tactile input device, visual input device, audio input device, orbrain-computer interface device. For example, feedback provided to theuser can be any form of sensory feedback, e.g., visual feedback,auditory feedback, or tactile feedback; and input from the user can bereceived in any form, including acoustic, speech, tactile, or brain waveinput. Example output devices 716 include display devices, such as a LED(light emitting diode), CRT (cathode ray tube), LCD (liquid crystaldisplay) screen, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display)or an OLED (Organic Light Emitting Diode) display, for displayinginformation to the user. The output device 716 may comprise appropriatecircuitry for driving the output device 716 to present graphical andother information to a user.

According to one aspect of the present disclosure, the client 110 andserver 130 can be implemented using a computer system 700 in response toprocessor 702 executing one or more sequences of one or moreinstructions contained in memory 704. Such instructions may be read intomemory 704 from another machine-readable medium, such as data storagedevice 706. Execution of the sequences of instructions contained in mainmemory 704 causes processor 702 to perform the process steps describedherein. One or more processors in a multi-processing arrangement mayalso be employed to execute the sequences of instructions contained inmemory 704. In alternative aspects, hard-wired circuitry may be used inplace of or in combination with software instructions to implementvarious aspects of the present disclosure. Thus, aspects of the presentdisclosure are not limited to any specific combination of hardwarecircuitry and software.

Various aspects of the subject matter described in this specificationcan be implemented in a computing system that includes a back endcomponent, e.g., as a data server, or that includes a middlewarecomponent, e.g., an application server, or that includes a front endcomponent, e.g., a client computer having a graphical user interface ora Web browser through which a user can interact with an implementationof the subject matter described in this specification, or anycombination of one or more such back end, middleware, or front endcomponents.

Computing system 700 can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.Computer system 700 can be, for example, and without limitation, adesktop computer, laptop computer, or tablet computer. Computer system700 can also be embedded in another device, for example, and withoutlimitation, a mobile telephone, a personal digital assistant (PDA), amobile audio player, a Global Positioning System (GPS) receiver, a videogame console, and/or a television set top box.

The term “machine-readable storage medium” or “computer-readable medium”as used herein refers to any medium or media that participates inproviding instructions or data to processor 702 for execution. The term“storage medium” as used herein refers to any non-transitory media thatstore data and/or instructions that cause a machine to operate in aspecific fashion. Such a medium may take many forms, including, but notlimited to, non-volatile media, volatile media, and transmission media.Non-volatile media include, for example, optical disks, magnetic disks,or flash memory, such as data storage device 706. Volatile media includedynamic memory, such as memory 704. Transmission media include coaxialcables, copper wire, and fiber optics, including the wires that comprisebus 708. Common forms of machine-readable media include, for example,floppy disk, a flexible disk, hard disk, magnetic tape, any othermagnetic medium, a CD-ROM, DVD, any other optical medium, punch cards,paper tape, any other physical medium with patterns of holes, a RAM, aPROM, an EPROM, a FLASH EPROM, any other memory chip or cartridge, orany other medium from which a computer can read. The machine-readablestorage medium can be a machine-readable storage device, amachine-readable storage substrate, a memory device, a composition ofmatter affecting a machine-readable propagated signal, or a combinationof one or more of them.

As used in this specification of this application, the terms“computer-readable storage medium” and “computer-readable media” areentirely restricted to tangible, physical objects that store informationin a form that is readable by a computer. These terms exclude anywireless signals, wired download signals, and any other ephemeralsignals. Storage media is distinct from but may be used in conjunctionwith transmission media.

Transmission media participates in transferring information betweenstorage media. For example, transmission media includes coaxial cables,copper wire and fiber optics, including the wires that comprise bus 708.Transmission media can also take the form of acoustic or light waves,such as those generated during radio-wave and infra-red datacommunications. Furthermore, as used in this specification of thisapplication, the terms “computer”, “server”, “processor”, and “memory”all refer to electronic or other technological devices. These termsexclude people or groups of people. For the purposes of thespecification, the terms display or displaying means displaying on anelectronic device.

In one aspect, a method may be an operation, an instruction, or afunction and vice versa. In one aspect, a clause or a claim may beamended to include some or all of the words (e.g., instructions,operations, functions, or components) recited in either one or moreclauses, one or more words, one or more sentences, one or more phrases,one or more paragraphs, and/or one or more claims.

To illustrate the interchangeability of hardware and software, itemssuch as the various illustrative blocks, modules, components, methods,operations, instructions, and algorithms have been described generallyin terms of their functionality. Whether such functionality isimplemented as hardware, software or a combination of hardware andsoftware depends upon the particular application and design constraintsimposed on the overall system. Skilled artisans may implement thedescribed functionality in varying ways for each particular application.

As used herein, the phrase “at least one of” preceding a series ofitems, with the terms “and” or “or” to separate any of the items,modifies the list as a whole, rather than each member of the list (i.e.,each item). The phrase “at least one of” does not require selection ofat least one item; rather, the phrase allows a meaning that includes atleast one of any one of the items, and/or at least one of anycombination of the items, and/or at least one of each of the items. Byway of example, the phrases “at least one of A, B, and C” or “at leastone of A, B, or C” each refer to only A, only B, or only C; anycombination of A, B, and C; and/or at least one of each of A, B, and C.

To the extent that the term “include,” “have,” or the like is used inthe description or the claims, such term is intended to be inclusive ina manner similar to the term “comprise” as “comprise” is interpretedwhen employed as a transitional word in a claim. Phrases such as anaspect, the aspect, another aspect, some aspects, one or more aspects,an implementation, the implementation, another implementation, someimplementations, one or more implementations, an embodiment, theembodiment, another embodiment, some embodiments, one or moreembodiments, a configuration, the configuration, another configuration,some configurations, one or more configurations, the subject technology,the disclosure, the present disclosure, other variations thereof andalike are for convenience and do not imply that a disclosure relating tosuch phrase(s) is essential to the subject technology or that suchdisclosure applies to all configurations of the subject technology. Adisclosure relating to such phrase(s) may apply to all configurations,or one or more configurations. A disclosure relating to such phrase(s)may provide one or more examples. A phrase such as an aspect or someaspects may refer to one or more aspects and vice versa, and thisapplies similarly to other foregoing phrases.

A reference to an element in the singular is not intended to mean “oneand only one” unless specifically stated, but rather “one or more.” Theterm “some” refers to one or more. Underlined and/or italicized headingsand subheadings are used for convenience only, do not limit the subjecttechnology, and are not referred to in connection with theinterpretation of the description of the subject technology. Relationalterms such as first and second and the like may be used to distinguishone entity or action from another without necessarily requiring orimplying any actual such relationship or order between such entities oractions. All structural and functional equivalents to the elements ofthe various configurations described throughout this disclosure that areknown or later come to be known to those of ordinary skill in the artare expressly incorporated herein by reference and intended to beencompassed by the subject technology. Moreover, nothing disclosedherein is intended to be dedicated to the public regardless of whethersuch disclosure is explicitly recited in the above description. No claimelement is to be construed under the provisions of 35 U.S.C. § 112,sixth paragraph, unless the element is expressly recited using thephrase “means for” or, in the case of a method claim, the element isrecited using the phrase “step for.”

While this specification contains many specifics, these should not beconstrued as limitations on the scope of what may be claimed, but ratheras descriptions of particular implementations of the subject matter.Certain features that are described in this specification in the contextof separate embodiments can also be implemented in combination in asingle embodiment. Conversely, various features that are described inthe context of a single embodiment can also be implemented in multipleembodiments separately or in any suitable subcombination. Moreover,although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

The subject matter of this specification has been described in terms ofparticular aspects, but other aspects can be implemented and are withinthe scope of the following claims. For example, while operations aredepicted in the drawings in a particular order, this should not beunderstood as requiring that such operations be performed in theparticular order shown or in sequential order, or that all illustratedoperations be performed, to achieve desirable results. The actionsrecited in the claims can be performed in a different order and stillachieve desirable results. As one example, the processes depicted in theaccompanying figures do not necessarily require the particular ordershown, or sequential order, to achieve desirable results. In certaincircumstances, multitasking and parallel processing may be advantageous.Moreover, the separation of various system components in the aspectsdescribed above should not be understood as requiring such separation inall aspects, and it should be understood that the described programcomponents and systems can generally be integrated together in a singlesoftware product or packaged into multiple software products.

The title, background, brief description of the drawings, abstract, anddrawings are hereby incorporated into the disclosure and are provided asillustrative examples of the disclosure, not as restrictivedescriptions. It is submitted with the understanding that they will notbe used to limit the scope or meaning of the claims. In addition, in thedetailed description, it can be seen that the description providesillustrative examples and the various features are grouped together invarious implementations for the purpose of streamlining the disclosure.The method of disclosure is not to be interpreted as reflecting anintention that the claimed subject matter requires more features thanare expressly recited in each claim. Rather, as the claims reflect,inventive subject matter lies in less than all features of a singledisclosed configuration or operation. The claims are hereby incorporatedinto the detailed description, with each claim standing on its own as aseparately claimed subject matter.

The claims are not intended to be limited to the aspects describedherein, but are to be accorded the full scope consistent with thelanguage claims and to encompass all legal equivalents. Notwithstanding,none of the claims are intended to embrace subject matter that fails tosatisfy the requirements of the applicable patent law, nor should theybe interpreted in such a way.

What is claimed is:
 1. A computer-implemented method for providinginformation related to selected content, the method comprising:displaying content on a display of an electronic device; invoking anassistant tool on the electronic device; in response to invoking theassistant tool, providing, on the display of the electronic device, anassistant window as a window overlaying a portion of the contentprompting, by the assistant window, a selection of the content;receiving, from an input source of the electronic device, an initialstroke on the display of the electronic device, wherein the input sourceis a stylus and the stylus is configured to provide rotation andleft/right incline that influences drawing of stylus ink on the displayto align with a user's left or right handedness; morphing, by theassistant tool, the initial stroke of the input source on the electronicdevice into a uniform stroke, wherein the uniform stroke is anindication of a selection of the content and the morphing includesmorphing a highlighting stroke as the initial stroke to have a uniformheight and straightness and morphing an enclosing stroke as the initialstroke to have a uniform width and closed shape; generating, by theassistant tool, a query for information associated with a portion of theselected content including metadata associated with the selectedcontent; receiving, by the electronic device, at least one highestranked result based on the query and the metadata, wherein a result rankindicates relevance of the result to the portion of the selectedcontent; and providing, by the assistant tool, the received at least onehighest ranked result for display in the assistant window and one ormore interactive features related to the at least one highest rankedresult.
 2. The method of claim 1, further comprising: identifying, bythe assistant tool, an area of the selected content; capturing, by theassistant tool, a snapshot of the identified area; and providing, by theassistant tool, the captured snapshot for display in the assistantwindow.
 3. The method of claim 1, wherein the indication from the inputsource is based on highlighting content for selection with stylus ink.4. The method of claim 3, further comprising: analyzing, by theassistant tool, the content underneath the stylus ink to generate thequery.
 5. The method of claim 1, wherein the indication from the inputsource is based on at least substantially enclosing the content forselection with stylus ink.
 6. The method of claim 5, further comprising:analyzing, by the assistant tool, the content at least substantiallyenclosed by the stylus ink to generate the query.
 7. The method of claim1, wherein the indication from the input source is based on underliningthe content for selection with stylus ink.
 8. The method of claim 7,further comprising: analyzing, by the assistant tool, the contentunderlined by the stylus ink to generate the query.
 9. The method ofclaim 1, wherein the indication from the input source is based on one ormore words being written on the display.
 10. The method of claim 9,further comprising: analyzing, by the assistant tool, the one or morewritten words to generate the query, wherein the received at least onehighest ranked result for display in the assistant window are suggestedcompletions to an incomplete word or a sentence on the display.
 11. Themethod of claim 1, wherein a virtual tip of the stylus maintains adefined slanted angle regardless of a tilt position of the stylus.
 12. Asystem for providing information related to selected content, the systemcomprising: a memory; and a processor configured to execute instructionswhich, when executed, cause the processor to: display content on adisplay of a client device; invoke an assistant tool on the clientdevice; in response to invoking the assistant tool, provide an assistantwindow as a window overlaying a portion of the content on the display ofthe client device; prompt, by the assistant window, a selection of thecontent receive, from an input source of the client device, anindication of a selection of the content on the display, wherein theinput source is a stylus and the stylus is configured to providerotation and left/right incline that influences drawing of stylus ink onthe display to align with a user's left or right handedness; morph, bythe assistant tool, an initial highlighting stroke of the input sourcewith a unified height and provide, on the display, the morphedhighlighting stroke having a uniform height and straightness; morph, bythe assistant tool, an initial enclosing stroke of the input source witha unified width and provide, on the display, the morphed enclosingstroke having a uniform width and closed shape; generate, by theassistant tool, a query for information associated with a portion of theselected content including metadata associated with the selectedcontent; obtain, by the client device, at least one result based on thequery and the metadata; identify, by the assistant tool, an area of theselected content; capture, by the assistant tool, a snapshot of theidentified area; and provide, by the assistant tool, the capturedsnapshot and the obtained at least one result from the query for displayin the assistant window and one or more interactive features related tothe at least one result.
 13. The system of claim 12, wherein theindication from the stylus is based on one of: highlighting the contentfor selection with stylus ink; at least substantially enclosing thecontent for selection with stylus ink; underlining the content forselection with stylus ink; and writing one or more words on the displaywith stylus ink.
 14. A non-transitory machine-readable storage mediumcomprising machine-readable instructions for causing a processor toexecute a method for providing information related to selected content,the method comprising: displaying content on a display of a mobiledevice; invoking an assistant tool on the mobile device; in response toinvoking the assistant tool, providing an assistant window as a windowoverlaying a portion of the content on the display of the mobile device;prompting, by the assistant window, a selection of the content receivingan initial stroke of an input source on the display, wherein the inputsource is a stylus and the stylus is configured to provide rotation andleft/right incline that influences drawing of stylus ink on the displayto align with a user's left or right handedness; morphing the initialstroke into a uniform stroke, wherein the uniform stroke is anindication of a selection of the content, wherein the morphing includesmorphing a highlighting stroke as the initial stroke to have a uniformheight and straightness and morphing an enclosing stroke as the initialstroke to have a uniform width and closed shape; generating, by theassistant tool, a query for information associated with the selectedcontent including metadata associated with the selected content;receiving, by the mobile device, ranked results based on the query andthe metadata, wherein a result rank is a confidence level of relevanceto the selected content; and providing, by the assistant tool, thereceived ranked results for display in the assistant window and one ormore interactive features related to the ranked results.
 15. Thenon-transitory machine-readable storage medium of claim 14, furthercomprising: selecting the content with the stylus; displaying theselection with uniformly proportioned stylus ink; and analyzing, by theassistant tool, the content indicated by the stylus ink.